package com.zhihuishu.micro.course.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zhihuishu.micro.course.model.CourseSpeaker;


public interface CourseSpeakerMapper {
   	/**
   	 * 根据课程id查询主讲人或者课程负责人数量
   	 * @author yulijin
   	 * @date 2016年8月17日 下午2:14:22
   	 * @param courseId
   	 * @return
   	 */

	int findCourseSpeakerCount(@Param("courseId")Long courseId,@Param("type")Integer type) ;
	/**
	 * 新增教学团队表
	 * @Description
	 * @author shehuaiyang
	 * @date 2016年9月13日 下午1:41:49
	 * @modifyNote 
	 * @param cs
	 * @return
	 */
	void save(CourseSpeaker cs); 
    /**
     * 修改教学团队表
     * @Description
     * @author shehuaiyang
     * @date 2016年9月13日 下午1:44:39
     * @modifyNote 
     * @param cs
     */
    void update(CourseSpeaker cs);
    /**
     * 查询
     * @Description
     * @author shehuaiyang
     * @date 2016年9月13日 下午1:46:40
     * @modifyNote 
     * @param courseId
     * @return
     */
    
    List<CourseSpeaker> selectCourseSpeaker(@Param("courseId")long courseId);
    /**
     * 删除
     * @Description
     * @author shehuaiyang
     * @date 2016年9月13日 下午3:40:30
     * @modifyNote 
     * @param id
     */
    void delete(@Param("id")Integer id);
    /**
     * 
     * @Description
     * @author shehuaiyang
     * @date 2016年9月14日 下午4:38:28
     * @modifyNote 
     * @param id
     * @return
     */
    int countCourseSpeaker(@Param("id")Integer id);
    /**
     * 根据id查询教师团队
     * @Description
     * @author shehuaiyang
     * @date 2016年9月14日 下午4:39:58
     * @modifyNote 
     * @param id
     * @return
     */
    CourseSpeaker findCourseSpeaker(@Param("id")Integer id);

	List<Integer> findCourseSpeakerTypeList(@Param("courseId")Long courseId) ;
	
	/**
	 * 更新教学团队排序
	 * @author ztl
	 * @date 2017年3月22日下午2:20:45
	 * @param paramList
	 */
	void updateCourseSpeakerOrderNumber(Map<String, Object> paramMap);

	/**
	 * 获取教学团队表中所有课程ID
	 * @author ztl
	 * @date 2017年3月22日下午9:20:05
	 * @return
	 */
	List<Integer> getAllCourseId();
	
	/**
	 * 补全教学团队老数据排序号
	 * @author ztl
	 * @date 2017年3月22日下午9:20:51
	 * @param courseId
	 * @param userType
	 */
	void setOrderNumebrForOldCourseSpeaker(@Param("courseId")Integer courseId, @Param("userType")Integer userType);
	
	/**
	 * 根据课程ID和教学团队类型获取最大排序号
	 * @author ztl
	 * @date 2017年3月22日下午10:40:57
	 * @param courseId
	 * @param userType
	 * @return
	 */
	Integer getMaxOrderNumberByCourseIdAndUserType (@Param("courseId")Long courseId, @Param("userType")Integer userType);
	
	/**
	 * 获取教学团队表中所有课程ID
	 * @author ztl
	 * @date 2017年3月22日下午9:20:05
	 * @return
	 */
	List<Integer> getAllCourseSpeakerId();
}
